module Priority(Priority, standard, infinite) where


data Priority = Infinite
              | Priority Integer
                deriving (Eq, Show)


instance Ord Priority where
    compare (Priority n) (Priority n') = compare n n'
    compare (Priority _)  Infinite     = LT
    compare Infinite     (Priority _)  = GT
    compare Infinite      Infinite     = EQ


standard :: Priority
--------------------
standard = Priority 10


infinite :: Priority
--------------------
infinite = Infinite


lowest :: Priority
------------------
lowest = Priority 0
